The invention is related to Internet Protocol (IP) telephony systems. More specifically, the invention is related to systems and methods for routing the data packets that carry communications enabled by an IP telephony system, such as telephone calls and text or video messages.
Existing IP telephony systems allow users to place and receive telephone calls or to send and/or receive other types of communications, such as text messages, Short Message Service (SMS) messages, Multimedia Messaging Service (MMS) messages and the like. The communications are transmitted, at least in part, by data packets that traverse a private and/or public data network.
For example, a calling party can place a telephone call to a called party using an IP telephony device that is coupled to a private or public data network. When the user requests that the call be placed, an IP telephony system receives the request and assists in setting up the call between the calling party's telephony device and the called party's telephony device. The called party's telephony device can also be an IP telephony device that is coupled to a private or public data network. Alternatively, the called party's telephony device could be an analog telephone that is coupled to a publically switched telephony network (PSTN). In still other instances, the called party's telephony device could be a cellular telephone or a mobile computing device with cellular telephone capabilities that is coupled to a cellular telephony network.
Typically, an IP telephony system receives a call setup request from the calling party's telephony device at a first proxy server (or a session border controller, or an originating gateway). The proxy server consults a routing engine or a routing database to determine the identity of a second proxy server (or session border controller or destination gateway) that is capable of communicating with the called telephony device. The first proxy server passes along the call setup request to the second proxy server. The second proxy server then contacts the called telephony device to attempt to setup the call.
During the call setup, the calling telephony device and the called telephony device are instructed where to send data packets bearing the media of the telephony communication so that those data packets can be delivered to the other telephony device. Often, a media relay is selected, and both the calling and called telephony devices are instructed to send data packets bearing the media of the call to the media relay, and to receive data packets bearing the media of the call from that media relay. In some instances, two or more media relays may be used in a chain fashion to create a communication channel for the data packets to traverse between the calling and called telephony devices.
Once the call has been setup, the called and calling telephony devices send data packets back and forth to each other using the path established during call setup. And this path typically no longer includes the first and second proxy servers. Instead, the path typically includes only one or more media relays that are used to help transmit the data packets between the calling and called telephony devices.
In instances where both the calling telephony device and the called telephony device are IP telephony devices, it may be possible to setup a peer-to-peer communications channel between the calling and called telephony devices which does not include any media relays. However, the first and second proxy servers are still often involved in helping to setup the peer-to-peer communications channel. In particular, the proxy servers can inform the called telephony device of the IP address being used by the calling telephony device, and vice versa. This allows the calling and called telephony device to begin communicating directly with each other so that the telephony devices can establish the peer-to-peer communications channel.
The process of setting up a peer-to-peer communications channel between a calling IP telephony device and a called IP telephony device can be more time consuming than the process of setting up a communications channel which includes a media relay. Often, the two IP telephony devices will need to exchange various pieces of information before a peer-to-peer communications channel can be established. Also, in some instances, one or both of the IP telephony devices may conduct some testing to verify that a potential peer-to-peer communications channel is operational before both devices agree to use the communications channel. This testing can also consume time before a telephony communication using the peer-to-peer communication channel can commence. As a result of these factors, significant delays can occur during call setup if the calling telephony device and called telephony device are attempting to setup a peer-to-peer communication channel.
These setup delays are undesirable, as they can cause user dissatisfaction and frustration. In fact, when a significant delay occurs during call setup, some users will assume that the setup attempt has failed, and they will terminate the setup attempt while the setup attempt is ongoing. This can lead not only to user dissatisfaction, but also lost revenue for the IP telephony service provider.
On the other hand, the costs incurred by an IP telephony service provider are generally lower if a peer-to-peer communication channel is used, as opposed to a communications channel which includes a media relay. If the IP telephony system owns and runs the media relay, there are costs involved in obtaining the media relay, provisioning it with appropriate software, and maintaining it over time. If a media relay from a third party is used, the IP telephony system must typically pay a fee for using the media relay. For these reasons, an IP telephony system would prefer for communications to be carried over peer-to-peer communications channels.
In view of the above-noted factors, there is a need for systems and methods which can utilize low cost peer-to-peer communications channels for telephony communications, but which can also ensure that the initial call setup procedures are accomplished quickly, so that the telephony communication can commence quickly.